home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
GRAPHICS
/
POV3E-FI.ZIP
/
Changes
< prev
next >
Wrap
Text File
|
1996-09-03
|
97KB
|
2,053 lines
This file is a historical record of changes to POV-Ray 3.0 as we develop it.
3.00e 09/03/96 Andreas Dilger
Fixed problems with file input from stdin and file output to stdout.
Fixed problem with PNG image maps.
frame.h: Organized and added comments describing most constants.
Removed unused constant ANSIFUNC (not used in base POV code).
Since the changes are widespread, the whole file is included.
Added new constants for calculations with M_PI (M_PI_2, M_PI_180, etc).
Changed MAError prototype to use size_t instead of long to quiet warnings.
UNIX: Fixed up prototypes and variable types to remove many compiler warnings.
Fixed problem with interrupt handler when writing to a broken pipe.
Fixed problem with dithering code for mosaic preview.
3.00d 08/13/96 Dieter Bayer
Fixed another heightfield bug and other minor heighfield changes.
3.00c 08/07/96 Chris Young
Fixed problem with some dda errors in height fields
Fixed mem.c problems. ANSI C says you can't do math on void *
Fixed octree problem with NULL ptr (perhaps twice. Two users submitted fix)
Fixed line number bug. Comments with // got double counted.
MS-Dos Djgpp pow function work-around.
3.00b 07/24/96 Andreas Dilger
Fixed bug in 3.00a patch that did (void *) arithmetic for pov_memmove.
Changed vbuffer.c to draw bounding boxes in white if palette is grayscale.
Removed unused typedef from gifdecod.c which conflited with Linux SVGA.
Linux SVGA: Added grayscale palette for preview, fixed video mode selection.
3.00a 07/19/96 Andreas Dilger
Fixed bug with new radiosity flags and saving empty radiosity _ot_tree.
Fixed MEM_HEADER when only MEM_TRACE was defined in mem.c.
Fixed mem_header to align on 8 byte boundaries for those machines that need it.
Changed pov_realloc to free the memory when size = 0, and return NULL.
Changed pov_memcpy() to pov_memmove() and made it work properly, and made
all instances of memmove to a new POV_MEMMOVE macro.
XWINDOWS: Changed colormap handling to dynamically allocate colors.
3.00 07/07/96 Chris Young
Fixed another problem with camera "angle". Scenes will look different
from both beta.7f and original beta.
Fixed (partially) radiosity resumed traces so scene.rca isn't deleted
when there is a controled user abort.
Changed version to 3.00 Note two zeros. Future patches will be 3.00a, 3.00b
etc. and future public bugfix releases will be 3.01, 3.02 etc.
Included spearate patch for DISTRIBUTION_MESSAGE for official compiles only.
POVMSS.ZIP contains updated USER_xxx.DOC & CMPL_xxx.DOC files.
3.0.beta.7k 07/03/96 Chris Young
Fixed warning for camera inside object
Added changes to tokenize.c for Windows from Chris Cason
3.0.beta.7j 07/02/96 Chris Young
Fixed polygon normal bug
Added trap for negative sqrt
Added trap for illegal mix of patterned and layered texture
Changed distribution message text
MSDOS: Removed beta expiration date. Added MS-Dos credits.
3.0.beta.7i 06/27/96 Andreas Dilger
Change 3d jitter code to remove redundant calculation via lookup table
(replaces crc lookup table).
Remove the +Q10 and +Q11 options and replace them with +QR and a warning msg.
Update png_pov.c to use new libpng API.
Change compression setting for PNG to default from maximum since there was
little benefit and a considerable slowdown at the maximum compression.
Fix bad memory free in TTF.
UNIX: Fix up interrupt handling.
Remove useless calcs in dithering code.
Defer X dither-cube setup to reduce startup time and unnecessary calcs.
3.0.beta.7h 06/26/96 Chris Young
Fixed qsort macro in super.c
Fixed error line number reporting in #while loop (again)
MSDOS: Added changes for DJGPP v-2.0 including new pmode.a
and ztimer.a. Requires old ld.exe linker and old go32.exe
to compile & link.
3.0.beta.7g 06/21/96 Chris Young
Fixed problem with // comments ending in \r but not \n
MSDOS: Fixed 24-bit truecolor and VESA mode selection.
3.0.beta.7f 06/21/96 Dieter Bayer
Fixed bug in camera's angle keyword (the length of the direction vector was
not calculated correctly. BEWARE!, old images using angle will look
different)
Fixed prism bug when the first height was larger than the second height
Improved perpendicular camera vectors warning message
3.0.beta.7e 06/16/96 Chris Young
Added COOPERATE_0 calls for Mac version
Fixed parsing dots count.
MSDOS: Fixed DJGPP 1.x VGA support.
Minor change in Diamond 24X truecolor.
3.0.beta.7d 06/13/96 Chris Young
MSDOS ONLY
Major rewrite of video code that is a combination of our old
non-VESA code and new VESA 2.0 code submitted by Kendall.
Both watcom and borland compiles and works for most modes.
However DJGPP is totally messed up. I plan to trash DJGPP
and start over for DJGPP 2.0 rather than fix it for 1.14.
3.0.beta.7c 06/13/96 Chris Young
Note: Ignore previous 7c patch from Eduard. Instead
unzip the enclosed zlib102.zip into source\zlib directory.
Then apply this patch which makes a minor change in zlib.
3.0.beta.7b 05/27/96 Dieter Bayer
Improved sor error messages
Fixed bug with multiple halos using already declared halos
Fixed bug in Rotate_Plane() (it's sufficient to rotate the normal
in case there's no transformation; speeds things up)
Fixed bug that occured when a CSG object had no texture
3.0.beta.7a 05/10/96 Chris Young
Fixed image_map crash in POV3DEMO\SURFACE\WARP1.POV
3.0.beta.7 05/02/96 Chris Young
Added QSORT macro to frame.h, bbox.c & bsphere.c
Updated version to beta.7.
3.0.beta.6j 05/02/96 Dieter Bayer
Added several fixes by Chris Young
Changed dda_traversal() errors to debug messages
Fixed blob lighting bug (increased surface threshold to avoid surface acne
due to surface points lying in shadow thought they actually are not)
Fixed bugs in blob and mesh opacity tests
Fixed bug in plane normal calculation
Fixed problems in Copy_Ray_Containers (all entries were copied instead
of copying only the valid entries).
Fixed bug in Parse_Polygon() (we parse 3d points not 2d points, thus
we have to test 3d points when looking for closed polygons)
Fixed bug in lighting code (distance based attenuation didn't work anymore)
Fixed bug in Copy_Blend_Map() (New->Users must not be increased if it is
negative because a negative value is used to indicate that the map
is a default map that lies in the data segment and not on the heap.
Several successive copies of the map would lead to a positive Users
value and Destroy_Blend_Map() would try to free memory in the data
segment. That's not possible of course!)
3.0.beta.6i 04/30/96 Andreas Dilger
Fix problem with TTF accent centering.
Fix problems with PNG flushing and added some more error checking.
Fix zlib corruption thanks to zlib authors.
Add source file location of smallest/largest alloc for MEM_STATS = 2.
Remove test for arcsin as requested by Tim Wegner.
Make X-Windows display code work properly during animations.
Add MEM_STATS to UNIX config.h.
3.0.beta.6h 04/21/96 Dieter Bayer and Chris Young
Changed transformation functions (added trans parameter to pass precalculated
transform to speed up parsing)
Fixed image map memory leaks (patch by Chris Young)
Fixed bug in MEM.C (as reported by Eduard Schwan)
Fixed bug that occured with polygons starting with co-linear points
Fixed plane shearing bug
Fixed cylindrical blob crack bug
Fixed texture=NULL bug in initialize_ray_container_state() (in RENDER.C)
Fixed lathe bug (too many intersections)
Fixed height field dda_traversal() bug
Fixed halo dust coloring bug (colors were ignored; see updated docs)
Fixed ground fog bug (the density formula was wrong)
Fixed bug in intersect_spotlight() in ATMOSPH.C
3.0.beta.6g 04/15/96 Chris Young
Fixed negative log problem.
Prohibit slope_map when used in a pattern that can't use it.
Fixed MEM.C problem from 6e that broke MEM_TRACE
Includes Andreas' warn changes to make them official
Added FRAME.H macro NEW_LINE_STRING so Write_INI_File
can output cr/lf vs just lf.
Updated MS-Dos config.h to use MEM_STATS 1 and NEW_LINE_STRING
3.0.beta.6f 04/16/96 Andreas Dilger
Fix turbulence in fog distance attenuation calculation.
Change rand() to use full precision, instead of 16 bits.
Fix declaration of POV_DISPLAY_PLOT_BOX to match actual usage
Fix #ifdef in mem.c for MEM_LOG_FNAME
Allow escaping the comment ';' character in INI file settings
Fix zero scaling check for matrix (again) - check columns instead of rows.
Fix problem with Grayscale + Alpha PNG output
Add missing destructors to close_all() for random, radiosity, fractal, histogram
Fix Locate_file to not add FILENAME_SEPARATOR after DRIVE_SEPARATOR
Force histogram grid size to divide into image size evenly
Make a destructor for histograms
Change hash table size to be a prime number.
Removed #ifdefs from prototypes in truetype.c
Cache some tables in truetype.c to speed parsing
UNIX: Fix up man page
SVGA: Add border and center SVGA display, allow non-power-of-two scaling,
add DISPLAY_PLOT_BOX function
UNIX: Make interrupt handler only set Stop_Flag, instead of actually quitting
XWIN: Don't force window to be centered, add DISPLAY_PLOT_BOX function, fix
DirectColor, fix PseudoColor palette selection
3.0.beta.6e 04/10/96 Eduard Schwan
Moved COOPERATE calls to more evenly called places in the bounding box and
vista draw areas.
Added code to MEM.C and OPTOUT.C to track and display memory usage statistics.
Turn this on by adding a
#define MEM_STATS 1
to config.h. To get even more stats printed, use
#define MEM_STATS 2"
I would suggest we ship with level "1" since that's all people will really
care about.
Made the Contributing_Authors and Primary_Developers string arrays extern so
the GUIs can display the names in their own credits boxes if needed. Filled
in the MEM.H header with MEM prototypes, removing from povproto.h, to be
more in line with C style. Added more header and code commenting in MEM.C.
There was a bug in Radiosity for the GUI implementations, where the global
variables were not being reset each time main() was called. If you set
radiosity ON, rendered a scene and prematurely interrupted it, then set
radiosity OFF & rendered a scene, it would crash at the end of the render
when trying to clean up the non-NULL ot_root variable, which now points to
freed memory. So at the start of main, a new function Init_Rad_Globals()
is called which resets all globals.
MAJOR NOTE!!! If you put global variables in POV-Ray, DO NOT initialize them
on the declaration line! Create an initializer function and call it from
main(). That way, the GUI implementations will work correctly. You can
no longer assume that globals will be set to their initial values every
time main() is called.
3.0.beta.6d 04/07/96 Dieter Bayer
Added hash table look-ups for Find_Reserved() and Find_Symbol() in tokenize.c
Fixed atmosphere and halo dust color bug (now a color can be specified for
the atmosphere and halo dust that is used to filter light coming from
light sources; see docs for more detail)
Fixed height field bugs (fixed holes that sometimes appeared; fixed gap
between adjactent height fields; fixed surface acne that sometimes appeared)
3.0.beta.6c 03/29/96 Dieter Bayer
Added fog to "camera is inside non-hollow object" warning
Added code to automically adjust the right and up vectors if the orthographic
camera is used (if orthographic is used after all other camera parameters
you'll get the same image area as with the perspective camera; see docs)
Fixed severe bug in Determine_Apparent_Colour() (weight and texture lists
were not saved)
Fixed bug in halo parsing (the color map was adjusted twice for declared halos)
Fixed bug in halo code (appereance is now independent of any transformations
applied to the container object)
Fixed bug in bbox recomputing functions (added check for NULL pointer)
Fixed bug in Inside_Prism()
Fixed bug in blob code (individual component textures were not transformed
properly, i.e. they were not transformed with the object)
Fixed bug in height field code (in dda_traversal())
Fixed bug in random stream allocation
Fixed bug in fog code (fog acne and floating point exceptions)
3.0.beta.6b 03/19/96 Chris Young and Andreas Dilger
Fixed substr bug. Now will accept last character in string.
Various cosmetic fixes from Andreas
Added Andreas' revised matrix fix
Fixed USHORT parameter problem in truetype.c
Fixed DISTANCE_MAXIMUM parsing so zero is permitted
See UNIXMSS6.ZIP for whole new Unix stuff. No patches.
3.0.beta.6a 03/17/96 Dieter Bayer, Steve Demlow and Tim Wegener
Added warning when camera is inside any non-hollow object.
Fixed bug in Parse_Prism() (Assign_UV_Vec was not used in one place)
Changed file buffer size display (the file buffer size will be displayed
only if the file buffer is actually used)
Fixed the fractal object bounding box problem.
Fixed matrix bug (a value of 0 was changed to 1)
3.0.beta.6 03/15/96 Chris Young
Minor cosmetic changes only in ms-dos specific areas
3.0.beta.5l 03/14/96 Dieter Bayer
Fixed bug in sky_sphere transformartion (used inverse transformation)
Fixed bug with image maps and once option (light amplification) and
overlayed image maps (dark areas)
3.0.beta.5k 03/13/96 Chris Young
Fixed handedness bug that caused Moray problem.
Put MAX_INCLUDE_FILES back from 25 to 10 (my mistake)
Changed MAX_LIBRARIES from 10 to 25 as I intended
MSDOS:Updates for CauseWay fast kbhit().
Note:Create SOURCE\MSDOS\WATCOM\CAUSEWAY and copy KBHITR.OBJ there.
3.0.beta.5j 03/13/96 Dieter Bayer
Fixed a bug in do_light_ray_atmosphere() (atmospheric attenuation wasn't
correctly handled when the viewpoint was inside a hollow object)
3.0.beta.5i 03/10/96 Dieter Bayer
Fixed another small halo bug (at last the halo's appearance is independant
from the sampling rate; I hope)
3.0.beta.5h 03/10/96 Dieter Bayer
Added atmosphere keyword to light source statement. By default light sources
do interact with the atmosphere. If "atmosphere off" is used with a light
source it is ignored by the atmosphere.
Fixed minor bug in Do_Halo()
3.0.beta.5g 03/04/96 Chris Young
Changed get_byte() to gif_get_byte()
Changed some parse error reporting procedures.
Close all input files before Terminate_POV.
Complete all error stream activity before fatal shellout.
MSDOS:Updated expiration date to 01/May/1996
MSDOS:Updated makefiles for CauseWay DOS Extender
Do "wmake -f msdoswat.mak CW=1" for CauseWay.
3.0.beta.5f 03/04/96 Dieter Bayer
Added missing transformations to fog (affecting the up direction only).
Changed status screen slightly (aa-options are only shown if aa is used etc.).
Fixed bug that occured when -f +c was specified.
Fixed bug with negative atmosphere distance.
Fixed bug with polygons/prisms and multiple holes. Now any number of closed
polygons/prisms can be used in a polygon/prism statement. You get a hole
where an even number of polygons/prisms overlaps (Note the new syntax
described in the docs).
Fixed bug in halo code (halo appearance was dependent from number of samples).
Fixed bug in halo code (light passing through the halo was not attenuated
by the halo).
Fixed bug in halo code (attenuation of background light was hardly every
more than 75%)
Fixed bug in render/lighting code (a halo was not rendered correctly when
the camera was inside the halo container).
Fixed bug in camera vector calculations made when look_at was used.
Fixed bug in camera parsing (POV-Ray now stops with a fatal error if the
camera location and look_at point are equal).
Fixed bug in RENDER.C (precomputed camera constants were not recalculated
during different frames).
Fixed bug in blob/lighting code (the textures/weights list was not correctly
re-allocated).
Fixed bug with multiple, translucent image maps and once option.
3.0.beta.5e 03/04/96 Chris Young & Andreas Dilger
Fixed problem with redeclaring previously declared identifiers
Added new #ifndef directive
Fixed problem with default maps on brick, hexagon & checker
Fixed radiosity and histogram memory leaks
Fixed radiosity preview bug
Fixed line number in #while loop
Fixed #switch, #case, #range bug
Added multi-component glyph support to ttf
MSDOS Fixed mosaic problem when using too high res for video.
3.0.beta.5d 02/27/96 Dieter Bayer
Added random number to parser (keywords "seed" and "rand")
Added transformations to sky_sphere
Fixed bug in Parse_Blob() that caused a filtering object-level texture
not to work correctly (an element-level texture did work though)
Fixed bug with scaled spotlights (direction vector has to be normalized
in Transform_Light_Source() in POINT.C)
Fixed missing eccentricity keyword bug (used in halos)
Fixed bug with ground fog (a negative offset moved the fog upwards while
a positive moved it downwards)
Fixed bug with subsets of cyclic animations (wrong clock values were calculated)
Fixed bug in intersect_lathe() that caused a crash sometimes
Changed ground fog to behave like "real" ground fog, i.e. the fog has a
constant density for all heights below fog_offset
Changed behaviour of hollow statement in CSG objects
3.0.beta.5c 02/23/96 Chris Young
Fixed problem with animation output file numbering.
Added %p output path string to shellouts.
NOTE: Macro FILENAME_SEPARATOR is now a char, not a string.
Check your config.h for this.
Other path related changes.
3.0.beta.5b 02/21/96 Chris Young and Andreas Dilger
Fixed ttf problem with unsupported kerning type 128.
Fixed smoothed mosaic for lines > 1280
Changed default extension handling per forum discussions.
Fixed problem with default extension on output file.
Changed radiosity TEMP_FILE_BASE to opts.Scene_Name.
Allow "Option#value" in INI-style options as alternative to
"Option=value".
Added APPEND_FILE_STRING macro.
Permit commas in brick, checker and hexagon between pigments, normals
and textures.
Changes to error messages when file not found.
Turn equal ended cone into cylinder.
Misc clean-up of error messages.
MSDOS:Changed Watcom compile to link fpu emulation.
UNIX:Misc changes from Andreas.
3.0.beta.5a 02/13/96 Chris Young
Fixed free(ptr) that should be POV_FREE(ptr) in octree.c
Fixed memory leak in declared ttf objects
Misc video changes in MSDOSVID.C; increased MAXMODES for VESA
Changed expiration date from mm/dd/yyyy to dd-mmm-yyyy
Substituted latest PMODE.H & DEBUG.H
3.0.beta.5 02/07/96 Chris Young
Fixed problem with gif decoder on lines longer than 2048 pixels
Fixed bad error reporting when out-of-memory on calloc
Fixed type cast problem in octree.c
Changed beta test banner
Fixed memory leak in declared material_map
Various ttf fixes from Andreas
Fixed watcom bug in zconf.h
Updated all MS-DOS & Windows makefiles for rad_data.c
Added beta expiration to MS-DOS
Fixed +P in MS-DOS animations per DMF's design
Misc Windows fixes for BC 4.52
Added some (tm) signs, updated some copyright notices
3.0.beta.4l 04/Feb/96 Jim McElhiney
Major revision to all radiosity code
Better set of sample points, stored in new lookup file rad_cache.c
Multibounce radiosity now supported
Error bound now adaptive with max possible contribution to surface
radiosity Initialize/Deinitialize functions installed
Continue trace after interrupt now supported using <myfile>.rca
(Radiosity CAche file)
Free of all radiosity allocated memory after each frame
No more frame-to-frame cacheing bugs
Default value auto calculated for Radiosity_Dist_Max: use 0 if unsure
(this necessitated saving the user's "look_at" value in camera struct)
Changed defaults to more general purpose values
Status line on console now reports new rad samples per line for
consistency with antialiasing messages
Preview parameters will not allow you to choose start/end sizes which
will mess up radiosity.
Jitter amount in radiosity is smaller, so preview looks better.
Irradiance gradients implemented, for better quality/speed ratio
Combination of area lights and radiosity now MUCH faster
Misc:
VNormalizeEq is now faster, using mult not div
Light_List_Struct was used (locally) in 2 files for 2 purposes, which
messes up some debuggers. One of the structures was renamed to be unique.
Light_List_Struct now saved and restored in Determine_Apparent_Colour to avoid
subtle non-reentrancy bug. (trace a ray, which causes reflections at lower
level to tag light source contributions as done in light_tested_struct, then
pop back up to next level, and trace another ray--it used to reuse bad light
calculations from deeper ray at upper level if more light testing done)
Quick check in pov_shellout to avoid crashes when shellouts structure used
but not init'd (not sure why, but check is safer).
3.0.beta.4k 02/05/95 Dieter Bayer
Updated "Copyright 1995 Persistence of Vision Team" to 1996
3.0.beta.4j 01/29/95 Chris Young
Fixed bug when #version used inside #if #else #end
3.0.beta.4i 01/26/95 Dieter Bayer
Changed keyword "surface_of_revolution" to "sor"
Fixed bug with three or less focal blur samples
3.0.beta.4h 01/25/95 Chris Young and Andreas Dilger
One more ttf bug squashed.
Misc prototypes added, unused variables removed. Minor junk.
3.0.beta.4g 01/24/95 Chris Young and Andreas Dilger
Replaced default READ_ENV_VAR and PROCESS_POVRAY_INI with warnings to
insure that each platform implements them.
Updated libpng make files.
Added "Include_Ini=file.ini" to ini parser for file names with blanks.
Fixed TTF code to handle glyph spacing and spaces properly.
TTF now uses the ISO 8859-1 (Latin-1) character set, but has support
for other character sets once we make the parser handle it.
Still can't handle multiple component glyphs (most accented characters).
Increased the length of a string constant to be up to 127 characters long.
3.0.beta.4f 01/18/95 Andreas Dilger and Tim Wegner
Added function calls to support libpng 0.87 error messages.
Replace Libpng with version 0.87. Make sure Libpng gets copied
to the correct places.
3.0.beta.4e 01/17/96 Steve Demlow
Cleaned up most non-K&R compatable code (except stdarg stuff in userio.c) and
compiler warnings
Fixed TTF to work when sizeof(short) != 16 bits and sizeof(long) != 32 bits
Fixed minor logic problems in TTF code (with help from Andreas Dilger)
Changed TTF to do file error checking (thanks to Andreas Dilger)
3.0.beta.4d 01/13/96 Dieter Bayer
Fixed bug in total time/frame calculations
Fixed bug in atmosphere calculation (intersect_spotlight())
3.0.beta.4c 01/13/96 Chris Young
Fixed problem with animation output file numbering with subsets.
Fixed problem so string identifiers can be redeclared.
Fixed problem with very long string concats.
Moved "ambient_light COLOR" to global_settings{...} statement.
Changed global_settings { irid_wavelength { COLOR } } to...
global_settings { irid_wavelength COLOR }
Created Print_Authors() routine from Usage()
MS-DOS: Made banner stream scrollable; added Print_Authors() to sign on.
Disabled VESA debug.
3.0.beta.4b 01/01/96 Chris Young
Fixed problem with transforming tiles texture identifiers.
Changes from Xander to fix one ttf bug. Try those fonts that crashed.
Changes from Andreas Dilger
Changed order of gamma_correct() and Clip_Colour() calls to avoid doing
an exponentiation with a negative base (ie pixel value).
Added interrupt handler for UNIX systems to allow "safe" interruption of
a trace with CTRL-C.
Modified PNG file output to avoid flushing when an output buffer is used.
Cosmetic changes.
3.0.beta.4a 12/20/95 Dieter Bayer
Changed halo stuff to use transmit instead of filter to store the differential
translucency instead of the differential opacity (change rgbf into rgbt
in all your halo scenes and replace the transmittance values by 1-values)
Fixed bug that occured when resuming animations (all but the first image
were traced again)
Fixed bug with multiple overlapping dust halos (light contribution was tested
for light rays too and not only for viewing rays)
Fixed sampling bug when -a and +am2 was used (now -a always casts one
non-jittered sample per pixel regardless of the sampling method)
3.0.beta.4 12/08/95 Chris Young
Removed build-in float constant "platform"
Removed "#status" language directive
3.0.beta.3l 12/05/95 Dieter Bayer
Changed PNG_POV.C to compile under GCC 2.7.1 with bounds-checking extension
Changed quilt_cubic() to return values between 0 and 1 (and not 0 and sqrt(3/4))
3.0.beta.3k 12/04/95 Tim Wegner
Modified julia_fractal slice field syntax. It is now:
julia_fractal {
... other fields
slice <NORMAL4D>,DISTANCE
}
where the 3-D slice "plane" is perpendicular to NORMAL4D and is DISTANCE
units from the origin. NORMAL4D is internally normalized so that DISTANCE
is correct. The following are illegal:
slice <0,0,0,0>,d (vector has length zero)
slice <x,y,z,0>,d (t coordinate of vector is zero)
The default value makes the slice "plane" the usual x,y,z space:
slice <0,0,0,1>,0
The slice plane is intersected the 4-D julia_fractal object and projected
to 3-D space by dropping the fourth component of all points.
Also added two small fixes for Chris in texture.c and pattern.c.
3.0.beta.3j 11/23/95 Andreas Dilger
Added flags to allow image file I/O routines to know how image is used.
Changed PNG code to store 16-bit grayscales as true grayscales rather
than heightfields, when not used as a heightfield.
Changed PNG code to only do input gamma conversion for image maps, and
to make the conversion to the assumed_gamma value of the scene.
Changed PNG code to always write a 1.0 gamma chunk for histograms and
grayscale heightfields instead of 1.0/display_gamma.
3.0.beta.3i 11/23/95 Dieter Bayer
Fixed bug with superellipsoids used in CSG (this bug probably occurs in 03g
and 03h only)
3.0.beta.3h 11/22/95 Chris Young
Fixed problem in express.c with color vectors
Added image_map{... transmit REG,VALUE} and transmit all VALUE.
MSDOS: Started to implement VESA 2.0 but found other bug and fixed it.
3.0.beta.3g 11/22/95 Dieter Bayer
Fixed bug in ATMOSPH.C that occured when no light sources were used
Fixed bug with transparent objects blocking background
Fixed bug with transparent image maps (in TEXTURE.C) as mentioned by Chris Y.
Fixed bug in superellipsoid intersection test (TRUE was returned in some
cases by All_Superellipsoid_Intersections() even though there was no
intersection)
3.0.beta.3f 11/18/95 Chris Young
Minor fractal changes by Tim Wegner
Changed COEFF_LIMIT to 1e-16 fixing Watcom prism bug
Fixed another #while bug
MSDOS:Changed box params from char to int
Fixed DJGCC use of / in argv[0]
Added warning if POVINI points to non-existent fil
Fixed bug in Select_VESA_Mode.
Added many Debug messages in VESA, will remove later.
3.0.beta.3e 11/14/95 Chris Young
Eliminate READ_ENV_VAR_BEFORE and READ_ENV_VAR_AFTER
Added READ_ENV_VAR which should read a POVINI which points to the user
specified global INI file.
Added PROCESS_POVRAY_INI function. If there was no POVINI specified then
this routine should read povray.ini from the executible directory. If
there was a POVINI then this step is skipped.
Removed all other automatic processing of povray.def and povray.ini even
in the current directory.
Converted Split_Time to SPLIT_TIME macro and added POV_Std_Split_Time
Added pre_init_povray to povray.c, see comments on routine.
Removed disabled field rendering for non-animations.
MSDOS: Implemented MSDOS_Process_Povray_Ini and MSDOS_Process_Env
PVENGINE: Partially pre_init_povray
3.0.beta.3d 11/11/95 Dieter Bayer
Fixed missing initialization for Jitter_X and Jitter_Y in
trace_ray_with_offset() (RENDER.C) if no anti-aliasing is used
Fixed bug in do_atmospheric_scattering() that led to a lot of unnecessary
neglectable samples
Fixed bugs in intersect_spotlight() and intersect_cylinderlight() in
ATMOSPH.C that caused lots of samples due to wrong light intervals
Fixed bug in Trace() and Trace_Primary_Ray() that caused atmosphere
inside hollow objects to not work properly
Fixed memory problems with high +r values and adaptive sampling
3.0.beta.3c 11/09/95 Chris Cason
Modified userio.c to make vsbuffer global, to allow PVEngine to allocate
it and to thus call Usage () without starting up the renderer.
Merged below patches from Andreas Dilger and Eduard Schwan.
Eduard Schwan
Fixes to truetype.c to make it Mac-friendly, by using READ_FILE_STRING
for the open mode instead of "rb". Changed vbuffer.c such that the function
POV_Std_Display_Plot_Box () takes int parameters for the colours, instead
of chars.
Andreas Dilger
Moved histogram size initialization code from initialize_histogram() in
render.c to fix_up_rendering_window() in povray.c so that the values
are available when doing the Print_Options() call.
Changed the default histogram file name to have the correct extension
if the user doesn't supply the histogram file name. This is done at the
options parsing stage so the filename is available for Print_Options().
Added missing histogram CSV file type to help screen display.
#defined out code in radiosit.c and pattern.c that was unused.
+ Fixed unix config file header to match current default settings, and tried
to get better default settings for maximum filename length.
Added xwindows options to unix makefile, so only one makefile is needed.
Removed unused variables from xwindows.c.
3.0.beta.3b 11/08/95 by Chris Young
Added box drawing macro POV_DISPLAY_DRAW_BOX to frame.h and created
default POV_Std_Display_Draw_Box. Needed for MSDOS version.
Renamed Terminate to Terminate_POV and fixed param
Changed Split_Time params to unsigned in hopes of fixing Amiga problem.
MSDOS:Added non-dithered box drawing. Changed subset window to green.
Fixed PNG image map palette size for grayscale images with bit-depth <= 8.
Changed the method of promoting 9-15 bit OutputQuality images to fit in
16-bit colors from high-bit-set to zero-fill based on recommendations
from the PNG 0.90 specification.
3.0.beta.3a 11/06/95 by Dieter Bayer
Uncommented debug stuff in TRUETYPE.C
Fixed bug in hfield.c/boxes.c that caused segmentation fault with DJGPP
Fixed problems with comp_elements() in BSPHERE.C as suggested by Andreas Dilger
3.0.beta.3 10/31/95 by Chris Young
Fixed yet another #case bug.
Fixed memory leaks on multiple color_maps
Fixed problem with "once" on image_maps
Fixed text buffer overflow that made long smooth_triangle error msg crash
Added truetype changes from Steve & Xander
Added ALT_WRITE_INI_FILE macro for below
WIN: Fixed rerun problem with above macro
3.0.beta.2g 10/23/95 by Chris Cason
Numerous changes to support Windows code.
In set_output_file_handle (), removed test where the output file handle
was only set if output_to_file was TRUE to fix problem with GPF's in
continue trace.
Moved some typedef's, #defines, etc., from OPTIN.C to OPTIN.H.
Exposed some formerly static functions/variables in OPTIN.C.
Changed order of inclusion of OPTIN.H/OPTOUT.H relative to POVRAY.H in
some modules as OPTIN.H and OPTOUT.H depend on a typedef in POVRAY.H.
Removed most #if PRECISION_TIMER_AVAILALE tests that had been peppered
throughout the code by a previous patch in line with the team's policy
of keeping the use of #ifdef and so forth in the source code to a mimimum.
Re-introduced these defines to one specific area of the source (the
histogram code section).
Added new function initialise_histogram() which will set opts.histogram_on
to FALSE if PRECISION_TIMER_AVAILALE == 0. Calls to histogram code are
only made if opts.histogram_on is TRUE.
Re-introduced sanity-check and auto grid sizing code in histogram
initialisation that had been removed by a previous patch.
Added some new #DEFINE's to FRAME.H, called from POVRAY.C, to support
GUI's being able to get control at specific times (such as immediately
before rendering begins, to allow PVENGINE to write its own rerun
information.) These are -
POV_PRE_RENDER Called immediately before rendering begins.
Hook any code that needs to access global data
prior to rendering and/or write or display run-
specific statistics into this.
POV_PRE_SHUTDOWN Called just before shutdown (before destruction
of any information held in memory.) Hook any code
that needs to access this global data after
rendering into this.
POV_POST_SHUTDOWN Called after destruction of above is complete.
Hook any platform-specific destructors into this.
3.0.beta.2f 10/16/95 by Chris Young
Fixed #switch #case bug.
3.0.beta.2e 10/16/95 by Dieter Bayer
Changed hollow keyword from a finish parameter to an object parameter
(with changing all corresponding sources bugs with translucent
material maps should be gone)
Fixed bug with BLOB1?.POV scenes
Fixed bugs in Read_Png_Image() in PNG_POV.C (png_ptr was used instead
of r_png_ptr; that caused a segmentation fault with PNG image maps)
Andreas Dilger or Timothy Wegener PLEASE VERIFY THIS!!!
Fixed gradient and crackle bugs (hopefully; in some cases lots of
speckles appeared)
Fixed memory leakage in XWINDOWS.C
Fixed "pause when done"-bug in XWINDOWS.C (the display window is now closed
for -p and closed after pressing a mouse button in the window for +p)
Fixed bug in PPM.C that caused a segmentation fault when an aborted
PPM image was read
Fixed supersample count bug with adaptive supersampling (the number of
supersamples on the last line were displayed to be always 0)
Fixed bug in halo parsing (as noted by Chris Young)
Fixed bug in halo parsing (now a fatal error occurs if no color map is specified)
Fixed bug in do_atmospheric_scattering (sampling took a very long time
for non-white light sources because early exit did not work)
Fixed bug in OCTREE.C that occured when RADSTATS was defined (the file
no longer compiled as reported by Eduard Schwan)
3.0.beta.2d 10/10/95 by Chris Young
Added built-in identifier t=<0,0,0,1> and vector.t capability.
Fixed stuff with vector.u and vector.v.
Lots of internal changes related to t, u & v.
Fixed msdos error buffer problem.
Following changes from Andreas Dilger
Changes error messages in iff.c, gif.c, and targa.c to be consistent with
other formats.
Added tests for output file write errors (after c.g.r.r)
Adds histogram timer for unix systems.
Adds support for PNG images with both grayscale and alpha.
Changed error messages to be consistent with other formats.
Adds support for ASCII format PPM and PGM images, as well as
allowing comments and arbitrary bit depth in input images.
Added defined out code for PPM output comments ala PNG.
Fixed histogram support for non-PNG images. Added output
of histogram options in banner when histogram is active.
Modified output of display gamma to be part of display options.
Fixes resume from a file which has different size settings than those
given on the command line.
3.0.beta.2c 10/06/95 by Dieter Bayer
Applied noise patch by ? solves platform dependent noise problems)
Added missing module headers to OCTREE.C and RADIOSIT.C
Fixed bug in hfield.c (holes appeared due to missing rays)
Fixed memory leak occuring with material maps
3.0.beta.2b 10/05/95 by Andreas Dilger and Tim Wegner
Added gamma support.
New ini option
Display_Gamma=2.2 (default, can be changed in config.h)
New scene command: global_settings { assumed_gamma n.nn }
If not present, no gamma correction done. For platform-independent
output without gamma correction, set assumed_gamma to display_gamma
(e.g. 2.2). For "linear light" (gamma correction for display_gamma)
use assumed_gamma 1.00.
Added PNG histogram output. IMPORTANT - changes the +HT flag
so that +HTN means PNG histogram, and not NO histgram. No histogram
is now +HTX.
Fixed bug in Close_PPM_File, changed default RENAME_FILE command
3.0.beta.2a 10/04/95 by Dieter Bayer
Fixed illegal quality value bug for quality values larger 9
Fixed unused radiosity bug for quality values > 9
Fixed memory leaks with text objects
Fixed bug in image reading (line_data->transm wasn't initialized to NULL
in PNG_POV.C and TARGA.C)
3.0.beta.2 09/24/95 by Dieter Bayer
Fixed numerical problems with far away blobs
Fixed bug with high +r values (Primary rays were weighted with an ADC
bailout value other than 1. That's not allowed!)
Fixed bug in ra_gather() in RADIOSIT.C (ray wasn't initialized using
Initialize_Ray_Containers())
Fixed bug in HCMPLX.C as mentioned by Tim Wegner
3.0.beta.1e 09/21/95 by Eduard Schwan
Minor changes to resynch the Macintosh compile:
PAT3b1e.pat
optout.h: included frame.h, since I include it elsewhere, it needs the
definition of PARAMS(). I personally think EVERY header file should
be able to be compiled by itself, which means it needs to include
everything necessary for itself. Then you can just add an include of
it, and it takes care of its own dependencies.
PATzlb1e.pat
Zlib: added #ifndef around deflate.h, added include of string.h and a
define of Byte to something else in zconf.h, undeffed internal_state
in deflate.h.
PATpng1e.pat
libpng: added missing prototype for "png_output_flush" in png.h
To be fixed later... I also got these warnings in LIBPNG, which should
probably be fixed (missing prototypes?)
Warning : function has no prototype
PNGRTRAN.C line 454 {
PNGRTRAN.C line 1121 {
PNGRTRAN.C line 1165 {
3.0.beta.1d 09/19/95 by Chris Young
Added pov_memcpy which needs to be tested by those without memcpy.
MSDOS & WINDOWS: Changes to config.h in RENAME_FILE
**BEWARE** the duplicate PNG.H PNGCONF.H ZLIB.H & ZCONF.H have
been removed from SOURCE and exist only in SOURCE/ZLIB & SOURCE/LIBPNG.
Also the COPYTO.BAT & COPYFROM.BAT files have not been updated to
copy these files. You must hand copy them. Later COPYTO/COPYFROM
will be obsolete so I didn't bother updating them.
3.0.beta.1c 09/18/95 by Tim Wegner
Cleaned up fractal code, removed julia_parameter keyword, and added a whole
lot more functions. Syntax is now:
julia_fractal {
VECTOR4D
[quaternion | hypercomplex]
[sqr | cube | exp | reciprocal | sin | asin | sinh | asinh |
cos | acos | cosh | acosh | tan | atan | tanh | atanh | log |
pwr(FLOAT,FLOAT)]
max_iteration INT
precision FLOAT
slice VECTOR4D
}
The one function that needs explanation is pwr(FLOAT,FLOAT). This is the
function (in C terminology) that raises the complex number z to the complex
power (FLOAT,FLOAT). For example, the case pwr(2,0) gives the same image as
sqr (though it renders much more slowly.)
Most of these functions work only with algebra type hypercomplex. The only
ones that work with quaternion are sqr and cube. I added a trap for this
error.
Note that if any of these keywords which are not already supported by the
expression parser become supported in the future, then the
Parse_Julia_Object() routine would need to be changed to reflect this (an
easy change).
3.0.beta.1b 09/16/95 by Tim Wegner and Andreas Dilger
PMG support now resumes and works for height fields, and should work for
image maps and bump maps. Added Alpha support for PNG output, and made Targa
and PNG handling of Alpha consistent. Added NO_MEMMOVE define to unixconf.h
which uses memcpy instead on systems without memmove, and protects against
copying overlapping memory areas. I've included Andreas's changes to the
UNIX make file for Chris Cason's information (not intended to pre-empt any
decisions about where Libpng, Zlib directories should go.) The source has
been compiled with unixconf.h on AIX with the IBM xlc compiler, and it
works fine so we don't need a separate rs6conf.h.
3.0.beta.1a 09/10/95 by Eduard Schwan
Fixed incorrect parm passed to png_write_finish_row in PNG_POV.C.
The "#define W 3" conflicted with variables in POLYGON.C if precompiled headers
were used, so I changed the "W" variable names there, and moved the define
from FRACTAL.H to FRAME.H, to join its buddies X,Y,Z.
Removed incorrect trailing comma from ini_op enums in OPTIN.C.
Added a couple more cooperates in the bounding/light buffer code, since we
can be looping in there for awhile without letting the GUI breathe.
3.0.beta.0d 09/07/95 by Chris Cason
Returned COOPERATE calls to a few places (probably different from original).
Changed COOPERATE to COOPERATE_0 and COOPERATE_1 in source code and modified
frame.h such that this would not break code depending on the use of COOPERATE.
COOPERATE_0 is a high level one that is less likely to be ignored than
COOPERATE_1, if the GUI's niceness setting is in mean mode. COOPERATE_0 is
intended to be called less frequently by the renderer.
Added POV_PRE_PIXEL and POV_POST_PIXEL which always get called even if display
mode is turned off. Both macros take x, y and colour.
3.0.beta.00c 09/05/95 by Tim Wegner
You should delete the files gfract.* (obsolete) and julia.* (renamed).
The patch file will create two new files quatern.c and quatern.h which
were formerly the julia.* files.
Completely reorganized the fractal format. The new syntax for the fractal
object is as follows, with all parameters optional, and in any order:
julia_fractal {
julia_parameter VECTOR4D
quaternion | hypercomplex
sqr | cube | exp | reciprocal
max_iteration INT
precision FLOAT
slice VECTOR4D
}
sqr was z2 and cube was z3. The old "fractal" is obsolete. The old "julia"
object is what you get with the quaternion keyword present. The slice
keyword is new. It allows the 4D fractal object to be sliced by a 3D "plane"
at any angle.
There's a new routine called parse_Vector4D() in case anyone needs it for
other purposes.
3.0.beta.00b 09/03/95 by Dieter Bayer
Added PNG support by Tim Wegner and Andreas Dilger
Added Bits_Per_Color/Bits_Per_Colour INI file keyword (used by PNG)
Added Andreas Dilger to the contributing authors list
Added redirection options to the render option output
Added matrix transform to all places where transformations are allowed
Moved hollow keyword into finish statement. NOTE that in order to see
any halos inside an object you have to make sure that the finish
is set to hollow
Changed "r" file options to READ_FILE_STRING (that's "rb")
Renamed PNC.C to PNC_POV.C and added PNG_POV.H to avoid conflicts with
PNG.C and PNG.H that come with the PNG library
Renamed project_* functions in VBUFFER.C in order to avoid problems
with the Watcom linker
Fixed bug that occured in MSDOSVID.C when the console output of the render
stream was turned off (a segmentation violation occured due to a NULL
pointer access in Viewit)
Fixed bug in halo default color map assignment
Fixed some memory bugs in PNG_POV.C
Fixed bug in multi-textured blobs
Updated MSDOS DJGPP make & link files and Unix makefiles
3.0.beta.00a 08/29/95 by Dieter Bayer
Added Zsolt Szalavari to the contributing authors list
Replaced strupr() and strlwr() in express.c by own functions to make it work
with Unix and other systems that don't have those functions
Removed unused distance parameter from halo
Fixed help screen problems
Updated Unix make files
3.0.beta.0 08/29/95 by Chris Young
Added #ifdef (IDENTIFIER) language directive. See VECT2.POV
Added %w and %h (width, height) substitution for shell strings
Added black_hole warps by Chris Cason
Dropped dump and raw format. Remove DUMP.C DUMP.H RAW.C RAW.H
Added re-directable macros for new "sys" file type for system specific
format such as Mac Pict or Windows BMP. Macros in FRAME.H.
Support added via "sys" keyword such as "image_map{sys "file.ext"..."
and via +FS switch.
Added string functions "strupr(STRING)" and "strlwr(STRING)" same as C
Added built-in UV_VECT constants "u" value <1,0> and "v" value <0,1>
Added . period operator for VECT.x VECT.y VECT.z UV_VECT.u UV_VECT.v
COLOR.red COLOR.green COLOR.blue COLOR.filter COLOR.transmit
Added built-in float constant "platform". Defined in CONFIG.H
Added boolean function "file_exists(STRING)" searches current dir and +L
Added integer function "strcmp(STRING1,STRING2)" same as in C strcmp
Changed string function "num_to_string(F,W,P)" to "str(F,W,P)"
Changed float function "atof(STRING)" to "val(STRING)"
Changed variables "Point" to "IPoint" in HCMPLX.C
Fixed spelling on "eccentricity"
Fixed bugs in #if #else
Minor change in default file processing
Misc Error and Warning message changes by Dieter
Updated make files for removal of dump and raw.
3.alpha.0.19 08/27/95 by Dieter Bayer
Added halo stuff by Zsolt Szalavari (did some changes and improvements).
The syntax is (docs will follow later, sigh):
texture {
halo {
attenuating | emitting | glowing | dust
constant | linear | cubic | poly
planar_mapping | spherical_mapping | cylindrical_mapping | box_mapping
fog_type FLOAT
max_value FLOAT
exponent FLOAT
samples FLOAT
aa_level FLOAT
aa_threshold FLOAT
turbulence VECTOR
octaves FLOAT
omega FLOAT
lambda FLOAT
colour_map COLOUR_MAP
frequency FLOAT
phase FLOAT
scale VECTOR
rotate VECTOR
translate VECTOR
}
}
Added matrix transform by Steve Demlow (see sample scenes matrix.pov,
shear1.pov and shear2.pov)
Added distance based light attenuation for translucent objects. Syntax:
finish {
...
fade_distance FLOAT
fade_power FLOAT
...
}
The light is attenuated in a linear, quadratic, cubic, etc. fashion
(according to the fade_power value). At distance fade_distance
the attenuation is 50% (see sample scene atten1.pov).
Added new atmospheric scattering type 5 (Heyney-Greenstein function
with paramter given by "excentricity" keyword)
Added attenuation of light coming from light sources due to fog and/or
atmosphere (by default this is not used, i.e. the light is not
attenuated; the keyword "atmospheric_attenuation" is used with
light sources to switch the attenuation on/off) (see sample scene fog2.pov)
Added attenuation due to fog and/or atmosphere inside an object (by default
this is off, i.e. there's no fog/atmosphere inside any object; this
can be changed by using the keyword hollow, i.e. hollow FLAG)
(see sample scene fog2.pov)
Modified and simplified atmosphere supersampling
Removed unnecessary support for bounded fog
Fixed bug in Test_Shadow() (LIGHTING.C)
Fixed bug in trace_pixel() (RENDER.C): uninitialized variables
Fixed bug in Global_Setting_Warn(), PARSE.C
Fixed bug in Post_Tnormal(), NORMAL.C (slopemap.pov)
Fixed memory problem detected by Purify in Destroy_Blob(), BLOB.C
Fixed memory problem detected by Purify in Create_BMap_Entries(), COLOUR.C
Fixed memory problem detected by Purify in Create_Fractal(), FRACTAL.C
Fixed memory problem detected by Purify in Read_Gif_Image(), GIF.C
Fixed memory problem detected by Purify in Get_Dump_File_Handle(), DUMP.C
Fixed memory problem detected by Purify in Get_PPM_File_Handle(), PPM.C
Fixed memory problem detected by Purify in Get_Raw_File_Handle(), RAW.C
Fixed memory problem detected by Purify in Get_Targa_File_Handle(), TARGA.C
Fixed memory problem detected by Purify in Tokenize_Renderer(), RENDER.C
Lots of cosmetic changes (new header layout, added headers)
Updated MS-DOS make & link files
Updated Unix make & link files
Updated Unix xwindows.c file (new file supports true color displays)
3.alpha.0.18t 08/15/95 by Chris Young
Added "brick_size <VECTOR>" and "mortar FLOAT"
Other brick changes.
Added shellout return code processing.
MSDOS:Changes to implement return codes.
3.alpha.0.18s 08/08/95 by Dieter Bayer
Added Pascal Massimino and Timothy Wegner to the credit screen
Split credit screen into primary developer and major contributor part
Removed useless VSqr() macro
Fixed some field rendering problems
Fixed unwanted jittering of inital rays in antialiased images
Fixed unwanted jittering with non-antialiased images
Fixed bounding bug in BLOB.C
3.alpha.0.18r 08/07/95 by Chris Young
Fixed problems with \ in file names.
Moved caustics code to fix texture_map bugs.
Removed Max_Symbols, +QH and radiosity from INI & switches.
Added global_setting {
irid_wavelength COLOR
max_trace_level FLOAT // int internally
adc_bailout FLOAT
number_of_waves FLOAT // int internally
max_intersections FLOAT // int internally
radiosity {
brightness FLOAT
count FLOAT // int internally
distance_maximum FLOAT
error_bound FLOAT
gray_threshold FLOAT
low_error_factor FLOAT
minimum_reuse FLOAT
nearest_count FLOAT // int internally
recursion_limit FLOAT // int internally
}
hf_gray_16 [FLOAT] // optional boolean
}
Fixed #while(COND) bug
Some truetype updates from Xander.
MSDOS:Updated make files.
3.alpha.0.18q 08/06/95 by Dieter Bayer
Added field rendering command line switches (+UF +UO)
Added anti-aliased focal blur (Standard aa is switched off when focal blur
is used. The user is warned about this.)
Added early exit test for focal blur based on confidence test
New camera keywords:
confidence - Determines how sure the confidence test is, i.e. how
likely the pixel color is "close" to the real value.
The default value is 0.9.
variance - Maximum allowed variance. If the variance of the samples
in a pixel is greater than this value the maximum number
of samples will be used (i.e. the blur_samples value).
This parameter should be of the same magnitude as the
color resolution (on an 8bit per color display the
color resolution is 1/2^8). The default value is 1/128.
Added adaptive supersampling method (ini file: Sampling_Method):
+AM1 : non-adaptive supersampling
+AM2 : adaptive supersampling
Fixed some bugs I introduced in 18p due to patch problems
Fixed some field rendering bugs:
odd/even line tracing switches from frame to frame now
unnecessary supersampling of pixels above the current line is avoided
3.alpha.0.18p 08/03/95 by Dieter Bayer
Fixed focal blur bug I introduced with patch 18l
Fixed resampling bug of center sub-pixel during supersampling
Fixed bugs in matches() (OPTIN.C)
Changed some calls and other (unnecessary) stuff in RENDER.C
3.alpha.0.18o 08/03/95 by Jeff Bowermaster
Implemented Field Rendering for NTSC/PAL Animation
Keywords "Field_Render=bool" and "Odd_Field" substituted for Interlace..
3.alpha.0.18n 07/31/95 by Chris Young
Fixed big problem with Keyword=bool
Other minor changes
3.alpha.0.18m 07/28/95 by Chris Young
New string manipulation functions...
num_to_string(VALUE,LENGTH,PRECISION) creates string from float value
chr(VALUE) creates 1 character string, e.g. chr(169) makes a copyright
concat(STRING,STRING) concats two strings
substr(STRING,START,LENGTH) e.g. substr("ABCDE",2,3) returns "BCD"
New float valued functions...
atof(STRING) returns float value represented by string atof("1.2")=1.2
asc(STRING) returns ASCII value of first char of string, asc("A") is 65.0
strlen(STRING) length (in chars) of string (see STRINGS.POV)
New language directives print messages (see MESSAGE.POV)
#warning STRING #debug STRING #error STRING #render STRING
#status STRING #statistics STRING
During parsing, sends string to corresponding text stream
String expressions above work for ttf, #include and image_map, bump_map,
material_map names. Basically all strings.
Can declare string identifiers.
Partial support for \n \r \t etc. Only works in messages, not in ttf.
Changed Bits_Per_Pixel to Output_Alpha=bool and +UA -UA
Implemented #while (COND)... #end loop (see WHILE1.POV)
MSDOS: Remove ICB compiler support, removed TARGA+ board support
IBM: Dropped whole MACHINE\IBMPC directory.
3.alpha.0.18l 07/26/95 by Dieter Bayer
Changed a lot of memory allocations in BBOX.C, LBUFFER.C, LIGHTNING.C,
MESH.C, VBUFFER.C and VLBUFFER.C in order to avoid unnecessary mallocs/
frees during the main tracing loop
Changed DEPTH_TOLERANCE in planes.c due to infinite loop with SKYVASE.POV
Changed calls to free() and malloc() into calls to POV_FREE() and
POV_MALLOC() in OCTREE.C, PPM.C and RADIOSIT.C (the memory allocated
during radiosity isn't freed yet!)
Fixed bug in rainbow arcs when a filter value is used (the rainbow didn't
fade away anymore)
Fixed "Refrated" typo in OPTOUT.C
Fixed focal blur bug (the focal plane is in the right place now)
3.alpha.0.18k 07/25/95 by Eduard Schwan
Changed r,g,b,a parms in POV_Std_Display_Plot & Rect in USERIO.C/H from
unsigned char to unsigned int to resolve a Mac (Metrowerks) compiler bug
(MW got confused on the mixed K&R and ANSI styles for these.)
Fixed inconsistencies & Mac problems in JULIA.C/H. Some prototypes left
out the parameter name, some function decl.s were ANSI, and the Macintosh
has a type defined as "Point", so I renamed all "Point" parameters to
"point".
Added a COOPERATE call in BBOX.C during sort_and_split, so Macs don't
hang during the building of big bounding box trees.
Fixed Truman's "disappearing cylinder" bug in MATRICES.C, changed the
ever-questionable "if (fp==1.0)" to the more robust "if (fabs(fp-1.0)<Eps)"
3.alpha.0.18j 07/23/95 by Chris Young
Made -B switch turn buffer off, added Buffer_Output=bool
Rewrote some of text redirection, fixed bugs, made =bool work for any bool
Fixed Create_Ini=bool
Deleted Banner_File and Banner_Console redirection
Deleted +@ -@ stuff, replaced with warning message.
Deleted +Z -Z Debug= stuff
Moved mosaic preview error checking and relaxed it.
Other mosaic preview and radiosity preview fixes.
Turned Gamma_Correct into optional macro.
MSDOS:Turned dither off in draw box and Plot_Rect.
MSDOS:More make file changes/fixes
3.alpha.0.18i 07/20/95 by Chris Young
Added Interlace= and Interlace_Odd= INI settings but did not implement
actual odd/even interlace.
Added +Q10 to turn radiosity on but did not yet make other radiosity
changes nor did not yet do radiosity{...} statement.
Added User_Abort_Command=sss and Fatal_Error_Command=sss shell outs.
Removed +MS -MS and replaced it with Warning
Removed +NFI +NFF +Unnn switches
Removed VerboseFormat
Fixed bug that light buffer INI set vista buffer by mistake
Fixed #ifdef PRECISION_TIMER_AVAILABLE that should have been just #if
Updated various MS-Dos make files for fractal stuff
Fixed bug in MSDOS\COPYFROM.BAT that copied MSDOS\*.* files into
compiler-specific directories by mistake. If you have a file in a
compiler-specific directory that is also in MACHINE\MSDOS then delete it
from the compiler-specific directory and only keep it in MACHINE\MSDOS.
3.alpha.0.18h 07/16/95 by Dieter Bayer
Added extra stats to the stats screen
Added code to LIGHTING.C, RENDER.C and VBUFFER.C to use the transmittance
value of a pixel for the alpha channel
Added Pascal Massimino's fractal stuff (adopted by Tim Wegner)
Changed parameters to Intersect_Sphere() function
Changed fractal bounding sphere tests to call Intersect_Sphere()
Fixed bug with pigment colors of the type rgbt<0, 0, 0, t> with t > 0
3.alpha.0.18g 07/12/95 by Dan Farmer
Reversal of patch 3.alpha.0.18c (Garnder clouds removed).
3.alpha.0.18f 07/12/95 by Chris Young
Moved the Pre-Frame and Post-Frame commands to different location.
Added screen save/restore in MSDOS version before/after all 4 shellouts.
Fixed 0.0 to 1.0 range on wrinkle and waves pigment.
Added Histogram_Type=N for no histograms.
Fixed various Create_INI=rerun.ini problems.
Fixed bug with continued animations.
Added substitution options to the shellout commands. New options
are %s for scene name, %f for frame number and %k for clock value.
3.alpha.0.18e 07/07/95 by Dieter Bayer
Added check for zero memory allocation to mem.c (only if MEM_HEADER is defined)
Added caustics keyword to finish structure (caustics FLOAT). Default is
0, i. e. no caustics are simulated. A good value for caustics is 1.0
Changed mesh counters from int to long
Removed obsolete caustics_power ini keyword
Fixed zero allocation list of temporary light list in lighting.c
Fixed extra data bug in GIF.C as suggested by Chris Cason
3.alpha.0.18d 07/05/95 by Chris Young
Added default extensions for all input files (.pov, .inc, .tga, .gif etc)
Added default output file name based on input file name.
Fixed bugs in .INI parsing which cause some options to be wiped out.
Fixed bug which caused superelipsoids not to work in csg.
Added text buffers with scroll-back to MSDOS version.
Misc cleanup of MSDOSTXT.C, MSDOSVID.C and IBM.C and make files.
3.alpha.0.18c 06/22/95 by Dan Farmer
Added Gardner-style cloudplane pigment.
3.alpha.0.18b 06/22/95 by Chris Young
Changed "display_..." functions to "POV_DISPLAY_..." macros.
Added alpha output to POV_DISPLAY_... so Mac version can save alpha
Began major restructuring of MACHINE\IBM into MACHINE\MSDOS.
Added Kendall's console handling stuff to MSDOS vers.
3.alpha.0.18a 06/17/95 by Eduard Schwan
Removed unnecessary COOPERATE calls bogging down Mac version.
Fixed check_stats to display mosaic information and initial clock info.
Moved a too-tightly-nested CR output in verbose mosaic mode.
3.alpha.0.18 06/09/95 by Chris Young
Major clean-up of last several patches.
Fixed Library_Path= bug.
TTF file open now searches +L paths.
Major memory leaks fixed in tiles, texture_map and ttf.
3.alpha.0.17m 06/09/95 by Dieter Bayer
Added alpha channel support for Targa files (+f32 command line option and
Bits_Per_Pixel ini file option to save 32bit Targas; they are automatically
detected during reading and the alpha channel is used as transmittance.
The alpha channel is non-premultiplied and uses a value of 0 for 100%
transparency and a value of 255 for 0% transparency)
Fixed missing output filename bug when no filename was given
Fixed bug in Compute_CSG_BBox (wrong size to POV_REALLOC())
3.alpha.0.17l 06/07/95 by Chris Dailey
Moved options into a single structure in povray.h
Moved statistics into an array, indices denoted by an enum
Created total statistics array
Move Post_Frame_Cmd_String to after closing of output file to avoid contention
with shelled out program
Made +SF, +EF handle more like +SR/+ER and +SC/+EC in optin.c
Changed FrameData to FrameSeq
Updated machine-specific os2conf.h and bcos2.mak
3.alpha.0.17k 06/04/95 by Chris Young
INI-style values may now contain blanks. No longer need %b in shell commands.
Implemented bracked sections of INI file. Put "MYFILE.INI[MYSECTION]" on
command line. Only the section [MYSECTION] of file MYFILE.INI is read.
If no section specified, only unlabled part of INI read.
Fixed latest #switch #range bug reported by DMF.
3.alpha.0.17j 05/31/95 by Chris Young
Yet another bug fixed with #if #else and #declare
Reversed 17h some changes to restore +KF and +KFF
3.alpha.0.17i 05/30/95 by Dieter Bayer
Added GET_KEY(x) macro to machine config files (ibmpc, os/2)
Fixed bug in mesh normal calculation (missing test for null pointer)
Fixed bug in continued animations (only parts of frames where traced
after one image was aborted)
3.alpha.0.17h 05/27/95 by Chris Dailey
Removed Subset_Start_Pct and Subset_End_Pct, moved their functionality to
Subset_Start_Frame and Subset_End_Frame
Allow +SF1.0 and +EF1.0 as special case for last frame
Almost changed flags +KFL and +KL to +KFF and +KF for Initial/Final terminology
consistency, but +KFF & +KF are tricky. Instead used +KI and +KF for clock
Initial/Final, +NFI and +NFF for number frame Initial/Final
Fix help output for above option changes
More changes to option screen for animation
Added POV_SHELLOUT, POV_SYSTEM, and POV_MAX_CMD_LENGTH macros to frame.h,
(overridable in config.h)
Added Pre_Render_Command, Pre_Frame_Command, Post_Frame_Command, and
Post_Render_Command .ini file keywords; %b is for a blank, for _Frame_ %o
is output file name
3.alpha.0.17g 05/23/95 by Chris Young
Fixed a bug with #if #else and #declare
3.alpha.0.17f 05/23/95 by Dieter Bayer
Added code for cyclic animation support (+KC switch, Cyclic_Animation keyword)
Added help screen menue support (define GET_KEY(x) in config.h to get menue
to work! For MS-DOS that's #define GET_KEY(x) {(x) = getch();} )
Added animation options to option screen
Changed option screen layout (slightly!)
3.alpha.0.17e 05/17/95 by Dieter Bayer
Added code for faked caustics
3.alpha.0.17d 05/16/95 by Dieter Bayer
Modified mesh triangle calculation
Fixed "atmopshere in objects"-bug (atmospheric effects are not calculated
when inside a transparent object)
Fixed bug in smooth triangle normal calculation in MESH.C
3.alpha.0.17c 05/14/95 by Chris Dailey
Corrected default clock value bug introduced in 16L
Added animation status lines, made slight newline mods to others
Separated out initialization of statistics, print statistics for each frame
instead of whole animation
Don't use tparse as a temporary variable in optout.c, its value needs to
stay unchanged between frames to avoid exponential growth
Changed animation defaults as discussed in forum
Changed animation parameter .ini file names (removed Clock_ prefix)
Changed to "Initial"/"Final" terminology for whole animation definition,
"Start"/"End" terminology for animation subset definition. This includes
variable names and .ini file names
Changed filename generation scheme to figure out how many chars the frame
number takes up in the output filename
Split setup_output_file() to setup_output_file_name() and open_output_file()
to aid in future "shell out" feature after filename determination and before
opening
Added POV_NAME_MAX definition to frame.h, overridable in config.h
3.alpha.0.17b 05/11/95 by Dieter Bayer
Added filtering fog (color ... filter) and transmittance threshold (transmit x)
Added missing keywords to the ini-file parser (Vista_Buffer, Light_Buffer,
Draw_Vistas, Split_Unions, Remove_Bounds)
Changed triangle mesh syntax (mesh{} instead of triangle_mesh{})
Changed atmosphere syntax (scattering instead of reflectivity)
Changed rainbow syntax
Changed radiosity options help screen to fit on a 80x25 screen
Changed "Copyright 199x" into "Copyright 1995"
Changed structs in OCTREE and RADIOSIT into typedefs
Fixed bug in triangle mesh to make the hierarchy flag work correctly
Fixed bug in triangle mesh intersection point test ("missing shadow bug")
Fixed animation loop bug in POVRAY.C as mentioned by Chris Dailey
Removed vista/light buffer tree traversal methods (+up option)
Removed '#include <stdlib.h>' from RENDER.C
3.alpha.0.17a 05/02/95 by Chris Cason
Added histogram code.
Misc spelling fixes, particularly variable Help_Available (:-).
3.alpha.0.17 05/02/95 by Chris Young
Now possible to do #declare everywhere, even within objects (I think?)
Fixed destroy slope_map bug.
Misc bug fixes from recent patches.
3.alpha.0.16l 04/28/95 by Chris Dailey
ANIMATION CHANGES:
parse.c Make pointer NULL after Destroy()ing its contents for Camera,
do so for Texture while at it
povray.c Moved Initialize_noise() out of FrameRender() loop
povray.c Added Frame Number as @-escape to Output_File_Name: @[0]n, where
n=max digits. eg, file@3.tga would give file34.tga, file@03.tga would give
file034.tga. I know, @3 is no different than @7, we'll have to come up
with a more logical scheme.
povray.c Added animation loop
povray.c renamed setup_renderer() to setup_output_file()
povray.c Moved Initialize_Renderer() call into FrameRender()
povray.c Move set_output_file_handle() call into setup_renderer()
povray.c Move a large chunk of main() into new FrameRender() function
express.c Yet slightly different behavior for Clock used without being set -
inform user about default value, show warning only once
NON-ANIMATION CHANGES:
moved streams_init() call from mem.c to povray.c
cones.c:'Cone_Methods'/discs.c:'Disc_Methods'/bezier.c:'Bicubic_Patch_Methods'/
julia.c:'Julia_Methods' is declared as both external and static fixed by
removing its extern declaration in cones.h/discs.h/bezier.h/julia.h
lighting.c moved a brace as requested by Dan Farmer in message #110124,
which makes calling of do_irid() independent of light source type
converted mem.c function headers from true ANSI to middle ANSI-K&R (*sigh*)
modified other files to user userio.h, mem.h
split memio.c/h to create mem.c/h and userio.c/h
radiosit.c changed ra_average_near() to be usable as parameter to
ot_dist_traverse(), prototype in radiosit.h. Note - someone should
probably REALLY change ot_dist_traverse so that handle,handle1 are
struct wt_avg *, but I don't feel confident enough to do this
memio.c changed false->FALSE, true->TRUE to fix undefined symbol
3.alpha.0.16k 04/18/95 by Steve Demlow
Fixed stream redirection for non-standard I/O functions
Included octree.h in various places to define a type for radiosit.h
Fixed memory leak in Allocate_Text_Streams in optin.c
3.alpha.0.16j Apr 16/95 by Jim McElhiney
Added first version of all radiosity code
-radiosity source files (radiosit.c, radiosit.h, octree.c, octree.h)
-new flags
-new progress messages
-new mosaic preview function...could be integrated in future
-trace() returns distance to object hit
Gamma correction function installed in code, but no option sets it
-if you want to try this, set values in source in Gamma_Correct()
Smooth_Preview capability in the mosaic preview.
-Like Gamma correction, there is no switch for this. Change the
variable Smooth_Preview to try it...it is used only when radiosity
is on.
Small change to crackle to avoid value wraparound bugs
-note values returned are about 10% smaller...may need colour map change
Fixed some small compiler issues
-unused locals in targa.c and truetype.c
-memory addressing error in parse.c
-signed/unsigned mismatch warnings in 7 files
-floating point errors in boxes.c and julia.c
Note: error in julia.c is flagged, but NOT FIXED...for Dieter to check?
One user interface change:
-when using mosaic preview, when it completes, it now falls through to
do the regular detailed trace. Radiosity requires this behaviour,
and I changed it for the regular mosaic preview to match.
3.alpha.0.16i 04/09/95 by Dieter Bayer
Added arc to the rainbow (syntax:
rainbow {
up <VECTOR> - rainbow's "up" vector, i.e. angle = 0
falloff_angle1 FLOAT - angle of solid rainbow part
falloff_angle2 FLOAT - angle of total rainbow
}
The rainbow arc goes from -falloff_angle2 to +falloff_angle2
and is blended into the background from -falloff_angle2 to
-falloff_angle1 and from falloff_angle1 to falloff_angle2,
i.e. the "solid" (i.e. unblended) part of the rainbow
goes from -falloff_angle1 to +falloff_angle2. If falloff_angle1
is omitted no blending takes places. If falloff_angle2 is
omitted the arc covers 360 degrees.
Added seconds time stats.
Changed help screen layout
Moved ini-file and command line parser into OPTIN.C/OPTIN.H
Moved code from main() into new functions
Fixed memory leakage in Copy_Rainbow() in ATMOSPHERE.C
Fixed memory leakages that occured if redirection was used (using POV_REALLOC()
instead of POV_MALLOC() in process_variable() in OPTIN.C)
Fixed prototypes in POVRAY.C
Fixed divide by zero bug in Print_Stats() in POVOUT.C
Renamed OPTIONS.C/H to OPTOUT.C/H
3.alpha.0.16h 04/07/95 by Chris Young
Fixed expression parse bug when parens used around vector.
Fixed problems in counter_to_string where \0 was written beyond
end of string and leading spaces were too long.
Fixed memory leaks when previous blend map is overwritten.
3.alpha.0.16g 04/05/95 by Dieter Bayer
Added syntax of animation options to help screen
Added FRAND() macro to TEXTURE.H to generate random number x (0 <= x <= 1)
Changed POV_Std_rand() to use faster shift instead of divide
Changed calls to POV_RAND() into calls to FRAND() were applicable
Fixed memory leakage in stream allocation
3.alpha.0.16f 04/04/95 by Steve Demlow
Added options, for each output text stream, to turn off console output
and/or to write to a default or specified file.
Added option to write all .INI settings to a file.
Added stdin support for script files and stdout support for output image
files.
Turned off "Press any key" message if no WAIT_FOR_KEYPRESS is defined.
3.alpha.0.16e 04/4/95 by Eduard Schwan
Added missing prototype for alt_main in POVRAY.H
Added MAIN_RETURN_STATEMENT at end of main() in POVRAY.C
Optimized the way Authors strings were allocated and displayed in OPTIONS.C
Moved the COOPERATE calls around a little to gain some Mac speed
3.alpha.0.16d 03/29/95 by Chris Young
Added #switch, #case, and #range directives.
Fixed #if #else bugs.
Reversed a 16b patch that causes fatal errors when clock used without
being set. Changed to warning. Uses default clock=0.0.
Fixed +Knnn.n switch bug.
Tiny change in options.c for extra precision counters.
New scene files. Delete CASE1.POV & CASE2.POV. No longer valid.
3.alpha.0.16c 03/28/95 by Dieter Bayer
Updated credit screen
Fixed bug in triangle scaling
Fixed bug in triangle mesh bounding box calculation
3.alpha.0.16b 03/26/95 by Chris Dailey
Added preliminary animation support, including command line args, ini file
support, variable storage, and a little consistency checking.
Fixed a small bug with LAST_OPTION
Some OS2 files updated for 3.0
3.alpha.0.16a 03/24/95 by Dieter Bayer
Added support for targa type 11 files
Added support of high resolution counter (64bit), currently up to 15 decimal
digits are used for counter output (counter length defined in FRAME.H)
Changed stats screen layout
Changed BOUND_HUGE to 2e10 to avoid floating point overflow
as noted by Jim McElhiney
Fixed wrong COMMA_TOKEN in TOKENIZE.C
Fixed unitialized color bug in material_map
3.alpha.0.16 03/13/95 by Chris Young
Added #if (COND) #else #end and #if (COND) #end parsing.
Misc fixes and things necessary for #if and future conditionall stuff.
Full sync of all files.
3.alpha.0.15n 03/10/95 by Chris Young
Fixed Make_RGB bug in Create_Finish
Deleted extra braces in default color maps
Changed && to || in deciding when to do reflection
3.alpha.0.15m 03/08/95 by Dieter Bayer
Added colored reflections (finish { reflection <COLOR> } )
Added individual ambient color (ambient <COLOR>). Note that a modifications
to Parse_Colour() has still to be made to be able to parse only one float.
Currently there's only a temporary fix in EXPRESS.C as suggested by Chris Y.
Added ambient_light { color <COLOR> } for global ambient lighting
Fixed "Initialization is only partially bracketed" warnings
Fixed bug in POLY.C
3.alpha.0.15l 03/02/95 by Dieter Bayer
Changed no_hierarchy to hierarchy keyword (switch by on/off, true/false, ...)
Fixed bug in Bool_Flag() in OBJECTS.H
Fixed bug in height field scaling (it now works according to the docs)
Fixed bug in height field dda traversal
Fixed bug in height field triangle intersection
Made some changes to POLY.C
Renamed Point variables in MESH.C
3.alpha.0.15k 02/28/95 by Chris Young
Added repeat warp with offset and flip. For example:
warp {repeat 3*x offset <0,0.2,0.5> flip y}
Repeats the pattern every 3 units in the x direction. Offsets
each successive copy by "offset". Offsets accumulate.
Flip alternate odd/even copies in the specified direction. Specifically
"flip y" does "scale <1,-1,1>" to odd copies.
Deleted translate, rotate, scale & transform inside warp{...} stmnt.
Misc internal warp changes and bug fixes.
3.alpha.0.15j 02/27/95 by Dieter Bayer
Added automatic resizing of symbol and constant tables
Changed triangle mesh triangle texture syntax to texture { Name }
Fixed bug in height field bounding box calculation
Fixed some compiler warnings
3.alpha.0.15i 02/23/95 by Dieter Bayer
Modified height field normal calculation and triangle intersection (small speed-up)
Fixed a bug in height field intersection testing
3.alpha.0.15h 02/23/95 by Dan Farmer
Added 16 bit grayscale output for all output types (tga, tga-compressed,
ppm, raw, dump). Currently uses +FxH commandline switch (where "x" is
the mode), but may be changed to a +Q setting in the future. Sets the
grayscale palette for preview mode when 16 bit output mode is in effect.
3.alpha.0.15g 02/23/95 by Dieter Bayer
Added individual texturing of triangles to triangles meshes
Merged calls to functions for atmospheric effects into two new functions:
Do_Infinite_Atmosphere() and Do_Finite_Atmosphere() to avoid a copy of
all these calls in RENDER.C and VBUFFER.C
3.alpha.0.15f 02/22/95 by Chris Young
Added warp{...} statement to Parse_Pattern
Implemented turbulence warp and transformation warp
Included hooks for repeat, spiral and black_hole warps.
Added WARPS.C and WARPS.H
Updated DJGCC & Borland make files (need to verify dependency)
3.alpha.0.15e 02/22/95 by Dieter Bayer
Added the call to plot_pixel() to Supersample() that I removed earlier
Fixed bug in height field bounding box calculation (PARSE.C)
3.alpha.0.15d 02/20/95 by Dieter Bayer
Fixed bug in HFIELD.C (DDA setup)
Fixed bug in QUADRICS.C (intersection test)
3.alpha.0.15c 02/15/95 by Dieter Bayer
Added triangle_mesh syntax
Added pseudo-number generator in TEXTURE.C
Rewrote HFIELD.C
Changed triangle mesh data structure (normals of unsmoothed triangles
are now also stored as indices into the normal list)
Changed calls to rand() and srand() into calls to POV_RAND() and POV_SRAND()
Replaced In_Polygon with a much faster version by Eric Haines from GGems IV
Removed support for raw files
Removed unnecessary call to display_plot() from Supersample() in RENDER.C
Removed unnecessary function surface_area() from BBOX.C
Fixed bug in Solve_Polynomial() with higher order polynomials
3.alpha.0.15b 02/13/95 by Dieter Bayer
Added smoothing to triangle mesh object
Added raw keyword to triangle mesh syntax to specify the raw file
Added autodetection of 9, 12, and 18 numbers/triangle raw file format
Fixed several bugs in MESH.C
Fixed bug that occured when the priority queue was resized (BBOX.C)
Fixed bug in VBUFFER.C
Fixed bug with +ms option to make it work as intended
Fixed bug with help option -h
Fixed bug in BBOX.C with number of objects smaller than threshold (+mb)
3.alpha.0.15a 02/06/95 by Dieter Bayer
Added triangle mesh object (reads RAW format; no smoothing yet)
Added -h? options to show help screens
Changed BOUND.C: SNGL instead of DBL is used to store bounding boxes
(Beware that Assign_Vector() doesn't work with bounding boxes; use
Assign_BBox_Vector() instead. Be aware of the new bbox macros in FRAME.H);
functions to build and intersect a bbox tree are now reentrant.
Changes to BLOB.C (max. number of elements is arbitrarily set to 1,000,000;
data structure changed; bounding sphere stuff moved into BSPHERE.?)
Changed sky_sphere to make use of the filter and transmittive parts
of a color (filtered and unfiltered translucency)
Changed help and credit screens
Changed TRIANGLE.C
Fixed bug with transformed spotlights
Fixed bug in Compute_Triangle() that set correct triangles as degenerate
Renamed BOUND.? into BBOX.? (remove BOUND.?)
Created BSPHERE.C and BSPHERE.H
3.alpha.0.15 01/30/95 by Chris Young
Added "average" pattern type for pigment, normal and textures.
Includes Xander's latest truetype code.
Misc. cleanups.
3.alpha.0.14i 01/29/95 by Chris Cason
Added PPM & PGM file format support for image_map, bump_map,
material_map and height_field. Added PPM output via +FP switch.
New files PPM.C, PPM.H, PGM.C, PGM.H files. Make files must be updated.
3.alpha.0.14h 01/25/95 by Dieter Bayer
Added cylindrical light source.
3.alpha.0.14g 01/24/95 by Chris Young
Added "turb_depth" keyword for fog & mist. The "turbulence <nnn,nnn,nnn>"
continues to control the size of the turbulence pattern in the x,y,z
directions while turb_depth varies the front-to-back depth of the turb.
Typical turb_depth should be 0.0 to 1.0 with the default 0.5.
Fixed highlights and fill lights as requested by DMF
Misc cleanup of "variable assigned value that is never used" warnings.
3.alpha.0.14f 01/23/95 by Dieter Bayer
Added auto-bounding of elliptical paraboloids
Fixed bug with distance=0 in fogs
Fixed problems in Compute_Quadric_BBox()
3.alpha.0.14e 01/20/95 by Chris Young
Height field bug fixed
Removed duplicate call to close_all
Minor BC++ 4.5 fixes
3.alpha.0.14d 01/18/95 by Dieter Bayer
Changed calculation of attenuation for fading light sources
(light color at fade_distance equals the specified light color)
Fixed bug with mists/fogs and infinite rays
Fixed bug with multiple fogs
Fixed bug with atmosphere and area light sources
Fixed bug with clipped polys
3.alpha.0.14c 01/13/95 by Dieter Bayer
added fade_distance to light sources
Changed calculation of attenuation for fading light sources
Changed falloff_power to fade_power
Fixed bug with overlapping rainbows
3.alpha.0.14b 01/10/95 by Chris Young
Implemented built-in float identifiers "on", "true", "yes" with value 1.0
Implemented built-in float identifiers "off", "false", "no" with value 0.0
Added float functions
acos(A) arc-cosine of A
asin(A) arc-sine of A
tan(A) tangent of A
Added additive (non-filtered) transparency via 5th color channel.
Added "transmit" keyword (for example "color red 0.6 transmit 0.7")
Added "rgbt" and "rgbft" keywords (similar to "rgbf" but for transmit).
The amount of the transmit value is the percent of light that is allowed
to pass through in a non-filtered way. Note that light from the object
itself is diminished by (1.0-transmit) so a transmit value of 1.0 means
that the object totally disapears.
3.alpha.0.14a 01/10/95 by Dieter Bayer
Added volume rendering to simulate atmospheric scattering
Added light attenuation due to light source distance
Changed sky_blend to sky_sphere
Fixed a bug in PARSE.C with planes and 'zero' normals
Fixed a bug in POVRAY.C that occured when diskwrite was suppressed
Removed YZFog
Removed some unused variables from LIGHTING.C and RENDER.C
Removed (temporarily) support of bounded fog (this is probably something for
version 4 because a redesign of the intersection functions for a better
CSG handling would help pretty much)
3.alpha.0.14 01/09/95 by Chris Young
Added declared fog, rainbow, skyblend
Added several new keywords to parser but have not yet implemented them
Fixed empty bounded_by or clipped_by bug
3.alpha.0.13g 01/05/95 by CY
Adds texture_map and makes changes to tiles & material_map
Open handle fix from Eduard
3.alpha.0.13f 01/02/95 by Xander uploaded by CY
TRUETYPE.C changes to fix kerning
3.alpha.0.13e 01/02/95 by Dieter Bayer
Fixed bounding box problem with clipped planes
Changed MAX_INTERSECTIONS to MAX_FOG_HITS in ATMOSPH.C
3.alpha.0.13d 12/94 by Eduard Schwan
Changes to Mosaic preview
3.alpha.0.13c 12/22/94 by Dieter Bayer
changed type BLOBTYPE to type int in BLOB.C function headers.
3.alpha.0.13b 12/94 by Chris Young
Changes for static/global stuff accidently left out of 13.
3.alpha.0.13a 12/21/94 by Dieter Bayer
removed unneeded variable cd1 from BOUND.C
removed unneeded function declaration from PARSE.C
fixed some bugs in JULIA.C
fixed bug in BLOB.C
changed maximum blob component size to 65000. Storage data type is
defined now to make it easy to change (currently unsigned short)
made some minor changes to the options layout in OPTIONS.C
3.alpha.0.13 12/19/94 by Chris Young
About a gazillion functions and variables made static and other
changes suggested by Clint.
Patches for fussy Unix compilers by Steve Demlow
Sync up of all 3.0.12 patches
3.alpha.0.12h-k 12/18/94 by Dieter Bayer
changed max. number of blob component to 65000 (values are now
stored in unsigned shorts to save memory)
added credit screen (has to be updated).
added quaternion julia object by Paul Massinimo. New files JULIA.C & JULIA.H
added Steve Anger's patch to fix infinite loop in POV_RECLLOC()
added initializations to expressions in EXPRESS.C
fixed memory leakages in BLOB.C, PARSE.C, POLYGON.C, VBUFFER.C
fixed output buffer size bug (negativ buffer size if buffer was > INT_MAX byte)
fixed default filename bug in POVRAY.C. It wasn't displayed (e.g. data.tga)
changed max. index value (has to be smaller than 1) in Rainbow() and
Skyblend() to suit Compute_Pigment()
changed usage screen
changed options screen
changed call to Build_Bounding_Slabs() to always print number of objects
changed blob component limit to MAX_INT
changed 'int register' to 'register int' in EXPRESS.C
moved usage, option, and stats stuff into OPTIONS.C/OPTIONS.H
moved grid stuff from GRIDS.H into RENDER.C (delete GRIDS.H!)
removed some declared but unused variables
removed all unnecessary MATRIX referencing in function parameters. (vectors
and arrays are always passed by reference so referencing isn't necessary.)
removed unnecessary 'External variables' section from .c files
(external variables are included via include files)
3.alpha.0.12g by Chris Young
Split PARSE.C into PARSE.C & PARSTXTR.C. Added also PARSTXTR.H
Misc static changes, bug fixes
3.alpha.0.12f 12/10/94 by Eduard Schwan
Misc bug fixes in MEMIO.C, FRAME.H, TTF.C necessary for Mac.
3.alpha.0.12e 12/12/94 by Dieter Bayer
Changed blob component maximum (=30000)
Changed blob intersection list (now dynamically allocated)
Changed command line option +UR to +UD and +UU to +UR.
Changed calls to Fog() and Rainbow(). They are no longer called from
Determine_Apparent_Colour(). They are only called from Trace()
and Trace_Primary_Ray().
Changed depth threshold for superquadric ellipsoids.
Fixed roughness=0 bugs in PARSE.C.
3.alpha.0.12a thru d 12/09/94 by Chris Young
Implemented normal_map for all normals.
normal_map {
[0.0 NORMAL_BODY]
....
[N.N NORMAL_BODY]
}
Implemented slope_map for pattern-based normals.
slope_map {
[0.0 <HEIGHT,SLOPE>]
....
[N.N <HEIGHT,SLOPE>]
}
Changed scale on scallop_wave to match other wave types.
TTF bug fixes and split characters into individual objects so that
autobounding works.
Added exit code parameter to FINISH_POVRAY(n). Now FINISH_POVRAY(n)
should call exit(n);
Several incarnations of quilted taken in/out. Final version uses
Dan's normal and CY's pigment.
Numerous bug-fixes by Eduard and Dieter.
Total rewrite of how pattern-based normals work. New method fixes
bad design flaw but produces slightly different results. At least
it works consistently and efficently.
3.alpha.0.12 11/19/94 by Chris Young
Superelipsoids added by Dieter & Xander (new SUPER.C & SUPER.H)
Major rewite of color_map code to allow pigment_map and
to pave the way for normal_map, slope_map, & texture_map
Implemented pigment map for all except image_map
Rewrite of quilted pigment & normal
Proportional spacing for TTF added by Xander
Cylindrical camera models by Dieter
Included IBM.OLD & CONFIG.OLD for compilers that aren't yet ported
Fixed bug in mosaic preview by Eduard
3.alpha.0.11 11/01/94 by Dieter Bayer
Added improved bounding hierarchy creation to BLOB.C.
Added initialization of light list in LIGTHING.C.
Added test for focal blur to VBUFFER.C.
Added test for 'once' images in Test_Opacicty() (fixes POV3BUG.POV bug).
Added code to ibm.c that uses gotoxy(1,24) instead of gotoxy(1,15) in
IBM_Finish() if compiled for DJGPP to avoid segmentation violation.
Changed polygon data structure (saves memory for copied polygons).
Removed unnecessary workaround for POV_REALLOC() in CSG.C.
Removed unnecessary 'Inverted' element from TTF structure.
Removed 'Rewritten and ...' lines from function headers.
Removed single '/* [DB ?/94] */' comments.
3.alpha.0.10 10/30/94 by Chris Young
Misc lbuffer & vbuffer fixes by Dieter
Misc memio fixes by Steve anger
Major rewrite of pigment & normal code by CY
Added PATTERN.C & PATTERN.H
Moved many routines and rewrote parameter lists.
Added normal{...} types agate, bozo, brick, checker, crackle, gradient,
granite, hexagon, leopard, mandel, marble, onion, radial, spiral1,
spiral2, spotted & wood.
Note syntax for normal is that bump amount is always last. i.e.
normal {gradient <DIRECTION>, AMOUNT ...}
normal {mandel ITERATIONS, AMOUNT ...}
Modified syntax for spiral1 and spiral2 such that keyword must be
followed by float value specifying number of arms. Previously
octaves was used. i.e. pigment{spiral1 5}
Added wave type keywords for most pattern based pigments and normals
ramp_wave, triangle_wave, sine_wave, scallop_wave
Note in 3.alpha.0.9 VECT.C was renamed MATH.C & MATH.H but this caused
conflicts with <math.h> system file. Now renamed it to POLYSOLV.C &
POLYSOLV.H. Moved some macros from MATH.H to FRAME.H.
Note only the Borland & DJGCC make files are current. Dependancy info
in IBMGCC.MAK may be wrong.
3.alpha.0.9 09/28/94 by Dieter Bayer
Added transformations to blob components (translation, scaling, rotation).
Added multi-textured blob support.
Added optional strength keyword to new blob component syntax.
Added no_hierarchy keyword to blobs to avoid the creation of an internal
bounding sphere hierarchy.
Added improved color calculation for metallic surfaces.
Added vista buffer (+uv option, +upxx option for descending method).
Added light buffer (+ul option, +upxx option for descending method).
Added drawing of vista rectangles; kind of a preview (+ur option).
Added splitting of bounded unions with finite children (+su option).
Added code to resize priority queue in BOUND.C to avoid queue overflows.
Added code to allocate/free priority code outside Bounds_Intersect().
Added code to BOUND.C that puts all infinite objects in the first node
of the bounding hierarchy root. Thus the hierarchy won't "mess up".
Added infinite flag to objects to avoid testing the bounding slab of
infinite objects during bounding hierarchy traversal. This saves
time because the bounding box of an infinite object will always be hit.
Added code to Parse_Object_Mods() to calculate the bounding box of any
bounding or clipping objects and to assign the smaller one to the object
if the object's bounding box is larger.
Added code to Parse_Camera() to make sure that camera vectors are
perpendicular to each other. That is a must for the vista buffer.
Added code to Intersect_Box() to determine which side is hit in those
cases where intersecion points are close to each other. This fixes
surface acne problems at the edges of a box due to the usage of the
wrong surface normal (see CHARS.POV e.g).
Modified BOUND.C to work with vista/light buffer.
Fixed memory leaks in DISCS.C, LATHE.C, PRISM.C, SOR.C, and TORUS.C.
Fixed threshold problem in normal calculation of cones/cylinders.
Created missing .h files for most .c files.
Lots of code "clean-ups" and re-formatting.
3.alpha.0.8 09/22/94 by CEY
From Steve Anger:
Memory management parts of MEMIO.C See comments in MEMIO.C for details.
From Chris Young:
Split "Information" printf function into 3 new functions "Render_Info",
"Status_Info" and "Debug_Info".
All printf to stdout or stderr now converted to new i/o functions such
as Render_Info, etc.
All exit() calls re-directed through "Error".
Fixed +ER +EC bug reported by DMF.
Fixed TRUETYPE.C MAC macro by Eduard.
Major rewrite of all aspects of IBM.C including text and video.
Text changes are work-in-progress. Requires CONIO.H macros a la Borland.
Video requires Kendall's PMODE.LIB for all compilers. Note DJGCC is
unsupported but has been faked with compatible macros. VESA.C no longer
required. TIGA support deleted. Targa_Plus code needs rewritten but is
stubbed out.
Misc bug fixes.
3.alpha.0.7 08/31/94 by CEY
The following items from Dieter
- memory leackage in BLOB.C fixed (bounding hierarchy is deleted now)
- 'CROSSBLOB' bug fixed
- fillite light source bug fixed (as mentioned by Dan Farmer)
- 'toroids in CSG' bug fixed (larger tolerance in Inside_Poly())
- name Polygon changed to Polyg in POLYGON.C/POLYGON.H.
- Only one function is now used to solve a polynomial
c[0] * x^n + c[1] * x^(n-1) + ... + c[n-1] * x + c[n] = 0.
Solve_Polynomial(n, c, r, sturm, epsilon)
n - order of polynomial
c - coefficients
r - roots found
sturm - use sturmian root solver (TRUE)
epsilon - root elimination tolerance, i.e. roots with
|x| < epsilon will be eliminated (epsilon = 0
means that no roots will be eliminated)
From Eduard the mosaic preview. Uses +SPnn +SEnn
Requires new display_plot_rectangle in MACHINE.C
Does not do file output.
From CEY:
Misc bug fixes from various sources.
More work-in-progress on error messages etc.
3.alpha.0.6 08/19/94 by Dieter Bayer
Added new camera models and camera ray pertubation.
Added lathe primitve.
Added polygon primitive.
Added prism primitive.
Added surface of revolution primitive.
Added "rainbow" and "skyblend" (ATMOSPH.C).
Added cylindrical blobs and blob bounding hierarchy.
Added improved torus primitive (faster intersection testing)
Added two spiral textures.
Added Compute_???_BBox() to all objects.
Added function Solve_Polynomial_With_Root_Elimination() to VECT.C that uses
order reduction to eliminate roots at 0 (helps avoiding "surface acne").
Added function Solve_Polynomial() to VECT.C to easily solve
a polynomial of order n (sturm can be specified).
Added code for tighter bounding boxes of CSG intersections.
Added cache for shadow testing to avoid repeated tests with layered textures.
Added test for opaque objects that speed up Filter_Shadow_Ray().
Added 4x4-matrix inversion to MATRICES.C.
Added new vector macros (see VECTOR.H).
Added #defines to .H files so that they are just processed once if
they get included more than once.
Added memory clean-up to HFIELD.C.
Fixed iridescence bug due to uninitialized values in Create_Finish().
Fixed bug in sbisect() in VECT.C.
Fixed camera bug (ray direction parallel to y-axis).
Fixed "trace level bug". Now the correct maximum level traced is shown.
Fixed memory leakage bug in Free_Noise_Tables().
Fixed problems with CSG and declared height fields (most probably).
Fixed bug in Where_Error().
Moved Add_Pigment() from LIGHTING.C to PIGMENT.C and made all pigment
functions static.
Moved Perturb_Normal() from LIGHTING.C to NORMAL.C and made all normal
perturbing functions static.
Moved all fog functions to ATMOSPH.C and "merged" them into one function.
Changed POV 2.x difficult_coeffs() in VECT.C to version from POV 1.0
to solve problems with vanishing objects (new version is still there).
Problems with surface acne should be solved by root elimination.
Changed normal functions so that a pointer to the intersection structure
is passed instead of the intersection point (more flexible).
Changed normal calculation of boxes. It now uses information on the side
hit by the ray that was derived during intersection testing.
Changed some global functions to static.
Changed height field intersection testing to use only one function
for CSG and non-CSG height fields.
Changed disc functions to get tighter bounds and to increase speed.
Changed normal calculation of smooth triangles to increase speed.
Renamed varibales min and sec to minutes and seconds in POVRAY.C.
Removed unused global variable Shadow_Test_Flag.
"Clean-up" of most primitive related files (cosmetic changes, added
comments, small speed-ups).
Compressed Targa now supported via +FC switch.
3.alpha.0.5 08/08/94
Fixed vrotate bug.
Added Dan Farmer's focal blur
Added Dan Farmer's quilted normal pattern
Fixed truetype problems. Note .TTF file must be in current directory.
Cannot find TTF on +L paths.
New error message dumps lines on parse errors.
Relational operators < <= != = >= > added. Note relational expressions
must be enclosed in parens.
Logical operators & | ! added.
Conditional expressions (c)?a:b added.
3.alpha.0.4 07/16/94
Added Dieter's patches to remove various cache values.
Added Dieter's patches to combine object flags into bit flags.
Began outlining new message output functions in new MEMIO.C
Converted Xander's TRUETYPE.C to 3.x. It doen't work yet.
Deleted TIGA support from Borland version.
3.alpha.0.3 06/27/94
Fixed typo in VSumSqr macro in VECTOR.H affecting crackle
Fixed uninitalized Background_Colour in PARSE.C
Fixed 0.0 constant in Warn in PARSE.C
Fixed STAT.OUT that got stuck "on"
Added Automatic Depth Control (ADC) from Dan Farmer
Added fill lights, number of waves, fisheye, new fog types, and
brick pigment from Dan Farmer
Added first round rewrite of expression parser. Includes the following
functions:
These return float values...
abs(A) absolute values of A
atan2(X,Y) arc-tangent in radians of (X/Y)
ceil(A) round up to next integer value A
clock value of +K switch
cos(A) cosine of A where A is in radians
degrees(A) convert A from radians to degrees
div(A,B) integer part of (A/B)
exp(A) e-to-the A power
int(A) integer part of A
log(A) base e logarithm of A
max(A,B) maximum of A and B
min(A,B) minimum of A and B
mod(A,B) A modulo B, the remainder of A/B
pi constant 3.3.1415926535897932384626
pow(A,B) raise A to the B power
radians(A) convert A from degrees to radians
sqrt(A) square root of A
vdot(V1,V2) dot product of vectors V1 and V2
vlength(V1) length of vector V1
version value of version variable
These return vector values...
vaxis_rotate(V1,V2,D) rotate point V1 by D degrees about any
arbitrary axis V2 (not just coordinate
axes)
vcross(V1,V2) cross product of V1 X V2
vnormalize(V) scale V to unit length
vrotate(V1,V2) rotate point V1 about coordinate axes by
V2 amount of degrees. For example:
vrotate(V1,30*y) rotates V1 by 30 degrees
about y-axis.
x, y, z constant unit vectors
Added expression parsing to colors: White*0.536-Red*0.1
Made "color" keyword optional everywhere except old style color maps.
3.alpha.0.2 06/02/94
Added Steve Anger's memory cleanups.
Added crackle pigment but it contains a negative sqrt bug.
Added modified version of Dan Farmer's irid code.
irid {FLOAT [thickness FLOAT] [turbulence FLOAT] }
Other irid options to be added later.
Fixed Antialias_Threshold bug from 3a.0.1
Changed several .INI variables so the only set defaults but do not
turn options on.
Changed variable name in GIFDECOD.C per Eduard's request.
Fixed spelling of sturm in PARSE.C error message.
3.alpha.0.1 04/28/94
Implemented .INI file parsing system. Works with switches and .DEF
files too.
Eliminated case sensitivity option in TOKENIZE.C
Eliminated +T case sensitive switch.
Eliminated sub-options of +V switch (needs more work).
Changed when +SR, +SC, +ER, +EC take effect when using fractional values.
For example: +W320 +SR0.1 +W640 used to result in +SR32
now late binding results in +SR64. Order of specifing switches no
longer hurts.
Now +B0 or -B0 turns off any previous +Bnnn setting. Formerly any +B setting
could not be overridden once set. Now it can be.
3.alpha.0.0 04/06/94
Initial 3.0 version converted all VECTOR & COLOUR structs to arrays.
Added +Xnnn command-line switch to only check for keypress every nnn pixels.